/**
 * 停车服务相关API
 */

import { request } from './request.js'

/**
 * 获取当前用户的停车申请列表
 */
export function getParkingApplications(params = {}) {
  return request({
    url: '/api/services/parking-applications/',
    method: 'GET',
    data: params
  })
}

/**
 * 获取可用的车位列表
 */
export function getAvailableParkingSpaces() {
  console.log('调用获取车位API');
  return request({
    url: '/api/services/available-parking-spaces/',
    method: 'GET'
  }).then(res => {
    console.log('获取车位API返回:', res);
    return res;
  }).catch(err => {
    console.error('获取车位API错误:', err);
    throw err;
  });
}

/**
 * 创建停车申请
 * @param {Object} data - 申请数据
 */
export function createParkingApplication(data) {
  return request({
    url: '/api/services/parking-applications/',
    method: 'POST',
    data
  })
}

/**
 * 获取停车申请详情
 * @param {Number} id - 申请ID
 */
export function getParkingApplicationDetail(id) {
  return request({
    url: `/api/services/parking-applications/${id}/`,
    method: 'GET'
  })
}

/**
 * 取消停车申请
 * @param {Number} id - 申请ID
 */
export function cancelParkingApplication(id) {
  return request({
    url: `/api/services/parking-applications/${id}/cancel/`,
    method: 'POST'
  })
}

/**
 * 提交停车合同
 * @param {Number} id - 申请ID
 * @param {Object} data - 合同数据
 */
export function submitParkingContract(id, data) {
  return request({
    url: `/api/services/parking-applications/${id}/submit-contract/`,
    method: 'POST',
    data
  })
}

/**
 * 以下是管理员端API
 */

/**
 * 获取所有停车申请列表（管理员端使用）
 */
export function getAdminParkingApplications(params = {}) {
  return request({
    url: '/api/services/admin/parking-applications/',
    method: 'GET',
    data: params
  })
}

/**
 * 审批停车申请（管理员端使用）
 * @param {Number} id - 申请ID
 * @param {Object} data - 审批数据
 */
export function approveParkingApplication(id, data) {
  return request({
    url: `/api/services/admin/parking-applications/${id}/approve/`,
    method: 'POST',
    data
  })
}

/**
 * 拒绝停车申请（管理员端使用）
 * @param {Number} id - 申请ID
 * @param {Object} data - 拒绝原因
 */
export function rejectParkingApplication(id, data) {
  return request({
    url: `/api/services/admin/parking-applications/${id}/reject/`,
    method: 'POST',
    data
  })
} 